﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace ERPStore.NewsLetters.Models
{
	[DataContract]
	public class CampaignStat
	{
		[IgnoreDataMember]
		public int CampaignStatId { get; set; }

		/// <summary>
		/// Nombre d'email envoyés
		/// </summary>
		[DataMember]
		public int? EmailSentCount { get; set; }

		/// <summary>
		/// Nombre d'ouverture d'email mesurée
		/// </summary>
		[DataMember]
		public int? OpenEmailCount { get; set; }

		/// <summary>
		/// Nombre d'ouverture d'email distincts mesurée
		/// </summary>
		[DataMember]
		public int? DistinctOpenEmailCount { get; set; }

		/// <summary>
		/// Nombre de clicks 
		/// </summary>
		[DataMember]
		public int? ClickCount { get; set; }

		/// <summary>
		/// Nombre de clicks distincts (par email)
		/// </summary>
		[DataMember]
		public int? DistinctClickCount { get; set; }

		/// <summary>
		/// Nombre d'ajout au panier
		/// </summary>
		[DataMember]
		public int? AddToCartCount { get; set; }

		/// <summary>
		/// Nombre de commandes
		/// </summary>
		[DataMember]
		public int? OrderCount { get; set; }

		/// <summary>
		/// Nombre de lien distincts dans l'email
		/// </summary>
		[DataMember]
		public int? DistinctLinkCount { get; set; }

		/// <summary>
		/// Nombre de desinscriptions
		/// </summary>
		[DataMember]
		public int? UnsubscribeCount { get; set; }

		/// <summary>
		/// Date de départ de l'envoi
		/// </summary>
		[DataMember]
		public DateTime? StartSendDate { get; set; }

		/// <summary>
		/// Date de fin d'envoi
		/// </summary>
		[DataMember]
		public DateTime? EndSendDate { get; set; }

		/// <summary>
		/// Date du dernier click
		/// </summary>
		[DataMember]
		public DateTime? LastClickDate { get; set; }

		/// <summary>
		/// Date de la dernière ouverture mesurée
		/// </summary>
		[DataMember]
		public DateTime? LastOpenDate { get; set; }

		/// <summary>
		/// Nombre d'erreurs mesurée lors d'un envoi
		/// </summary>
		[DataMember]
		public int? ErrorCount { get; set; }
	}
}
